// 封装倒计时逻辑函数
import { computed, ref, onUnmounted } from "vue";
import dayjs from "dayjs";

export const useCountDown = () => {
    let timer = null;
    // 1. 响应式数据
    const time = ref(0);
    // 格式化时间 为 xx分 xx秒
    const formatTime = computed(() => {
        // 使用dayjs插件进行时间格式化
        return dayjs.unix(time.value).format('mm分ss秒');
    });

    // 2. 开启倒计时的函数
    const start = (currentTime) => {
        // 开始倒计时逻辑
        // 核心逻辑的编写：每隔1s减1
        time.value = currentTime;
        timer = setInterval(() => {
            time.value--;
            if (time.value === 0) {
                clearInterval(timer);
            }
        }, 1000);
    }
    // 组件销毁时清除定时器
    onUnmounted(() => {
        timer && clearInterval(timer);
    })

    return {
        formatTime,
        start
    }
}